Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
MongooseError: Query was already executed: Todo.updateOne({ _id: new ObjectId("612df063a8f

I updated mongoose to latest version (6.0.2) and now I'm recieving this error and crush the application whenever .updateOne() is executed. But object update inside the database. My code:

async(req,res) => {
    await Todo.updateOne(
        {_id : req.params.id},
        {
            $set : {
                status : "inactive"
            }
        },
        (updateError) => {
            // if updateError exist
            if (updateError) {
                // print error
                printError(updateError);

                // response the error
                res.status(500).json({
                    error : "There was a Server Side Error!"
                });
            } else {
                // if error dose not exist
                // print message
                console.log("|===> 🗂️  Data Was Updated successfully! 🗂️ <====|\n");
                // response success
                res.json({
                    message : "Todo Was Update successfully!"
                });
            }
        });
    }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Try to add .clone() to de updateOne function

async(req,res) => {
    await Todo.updateOne(
         {_id : req.params.id},
         {
              $set : {
                    status : "inactive"
              }
         },
         (updateError) => {
              // if updateError exist
              if (updateError) {
                    // print error
                    printError(updateError);

                    // response the error
                    res.status(500).json({
                         error : "There was a Server Side Error!"
                    });
              } else {
                    // if error dose not exist
                    // print message
                    console.log("|===> 🗂️  Data Was Updated successfully! 🗂️ <====|\n");
                    // response success
                    res.json({
                         message : "Todo Was Update successfully!"
                    });
              }
         }).clone();
    }

Latest version of mongoose not duplicate execution

https://mongoosejs.com/docs/migrating_to_6.html#duplicate-query-execution

about 4 years ago · Juan Pablo Isaza Relatório

0

Since you are using async syntax, put your code in try/catch blok:

async (req, res) => {
  try {
    await Todo.updateOne({ _id: req.params.id }, { $set: { status: "inactive"}});
    res.status(200).json({message: "Todo Was Update successfully!"});
  } catch (error) {
    res.status(500).json({error:'There was a Server Side Error!'})
  }
}

about 4 years ago · Juan Pablo Isaza Relatório

0

Your async/await should look like this:

async (req,res) => {
  try {
      const result = await Todo.updateOne(
          {_id : req.params.id},
          {
              $set : {
                  status : "inactive"
              }
          },
          );
      }
      console.log('success', result)
      res.json({message: "Todo Was Update successfully!", result })
  } catch (err) {
     console.log('error', err)
     res.status(500).json({error:'There was a Server Side Error!'})
  }
}

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda